//
document.writeln("<script src='http://res.wx.qq.com/open/js/jweixin-1.2.0.js'></script>");

(function(){
	var _WXUtils = function(){
		
	};
	
	_WXUtils.prototype={
		init: function(appId,timestamp,nonceStr,signature){
			//配置微信JS调用
			wx.config({
			    debug: false,
			    appId: appId,
			    timestamp: timestamp,
			    nonceStr: nonceStr,
			    signature: signature,
			    jsApiList: [
			    	'scanQRCode',
			        'chooseImage',
			        'uploadImage',
			        'downloadImage',
			        'translateVoice',
                    'startRecord',
                    'stopRecord',
                    'playVoice',
                    'pauseVoice',
                    'stopVoice',
                    'uploadVoice',
                    'onVoiceRecordEnd'
			    ]
			});		
		},
		scanQRCode: function(callback){//扫描二维码
		  	wx.scanQRCode({
			    needResult: 1, // 默认为0，扫描结果由微信处理，1则直接返回扫描结果，
			    scanType: ["qrCode"], //["qrCode","barCode"] 可以指定扫二维码还是一维码，默认二者都有
			    success: function (res) {
			    	var result = res.resultStr; // 当needResult 为 1 时，扫码返回的结果
			    	callback(result);
				}
			});
		},
		/*
		 * 拍照或选择相册照片
		 * callback 回调函数
		 * valId 放置返回值的html标签ID
		 * */
		chooseImage: function(callback,count){
		  	wx.chooseImage({
			    count: count, // 默认9
			    sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图，默认二者都有
			    sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机，默认二者都有
			    success: function (res) {
			        var localIds = res.localIds; // 返回选定照片的本地ID列表，localId可以作为img标签的src属性显示图片
					callback(localIds);
				}
			});    
		},

//		用于显示图片 add by lv
		showImg:function(localId,callback){
			//用于适配新版的ios 微信
			if(window.__wxjs_is_wkwebview==true){
				wx.getLocalImgData({
					localId: localId.toString(), // 图片的localID
					success: function (res) {
						var localData = res.localData; // localData是图片的base64数据，可以用img标签显示
						callback(localData);
					}
				});
			}else{
				callback(localId);
			}
		},

		/*
		 * 上传图片
		 * callback 回调函数
		 * */
		uploadImage: function(localId,callback){
			if(localId){
				wx.uploadImage({
					localId: localId.toString(), // 需要上传的图片的本地ID，由chooseImage接口获得
					isShowProgressTips: 1, // 默认为1，显示进度提示
					success: function (res) {
						var serverId = res.serverId; // 返回图片的服务器端ID
						callback(serverId);
					}
				});
			}
		},
		/*
		 * 上传多张图片
		 * callback 回调函数
		 * */
		uploadImages : function(localIds, callback) {
			var i = 0, length = localIds.length;
			function upload(lid) {
				if(lid){
					wx.uploadImage({
						localId : lid.toString(),
						success : function(res) {
							if (i < length) {
								i++;
								var serverId = res.serverId; // 返回图片的服务器端ID
								$.ajax({
									type: "POST",
									url: domain+"/xxsb!wx_downloadImage.action",
									data:"wx_serverId="+serverId,
									cache:false,
									success: function(msg){
                                        if(msg){
                                            var id = lid.replace(/[^0-9]/ig,"");
                                            $("#"+id).val(msg);
                                        }
									}
								});
								upload(localIds[i]);
							}
						},
						fail : function(res) {
							alert("稍后重试"+res.errMsg);
						}
					});
				}
			};
			upload(localIds[i]);
		},
		/*
		 * 拍照或选择相册照片， 并上传 callback 回调函数
		 */
		chooseuploadImage: function(callback){
			 var images = {localIds:[],serverId:[]};
	
			 wx.chooseImage({
		            count: 9,
		            sizeType: ['original', 'compressed'],
		            sourceType: ['album'],
		            success: function(res) {
		                images.localIds = res.localIds;
		                  
		                var i = 0; var length = images.localIds.length;

		                var upload = function() {
		                    wx.uploadImage({
		                        localId:images.localIds[i],
		                        success: function(res) {

		                            images.serverId.push(res.serverId);                           
		                            i++
		                            //如果还有照片，继续上传
		                            
		                            if (i < length) {
		                                upload();
		                            }
		                        }
		                    });                    
		                };

		                upload();	                
		            }
		        });  			 
			 callback(images.serverId);
		},
		
		closeWindow:function(){//关闭当期页面
			wx.closeWindow();
		},
		downloadImage: function(serverId){//下载图片
			
			wx.downloadImage({
			    serverId: serverId, // 需要下载的图片的服务器端ID，由uploadImage接口获得
			    isShowProgressTips: 1, // 默认为1，显示进度提示
			    success: function (res) {
			        var localId = res.localId; // 返回图片下载后的本地ID
			        alert(localId);
//			        var c=document.getElementById("mycanvas");
//					var ctx=c.getContext("2d");
//					var img=new Image();
//					img.src=localId;//"http://www.zjzlcw.com/lksb/images/close.gif";
//					img.onload = function(){
//						ctx.drawImage(img,0,0,180,240);
//						var dd=c.toDataURL();//默认png格式
//						if(dd){
//							dd = dd.substring(22);
//							$("#picbase64str_zp").val(dd);
//						}
//						alert($("#picbase64str_zp").val());
//					};
			    }
			});
		},
		openLocation: function(latitude,longitude,name,address){//打开地图
			wx.openLocation({
			    latitude: 0, // 纬度，浮点数，范围为90 ~ -90
			    longitude: 0, // 经度，浮点数，范围为180 ~ -180。
			    name: '', // 位置名
			    address: '', // 地址详情说明
			    scale: 1, // 地图缩放级别,整形值,范围从1~28。默认为最大
			    infoUrl: '' // 在查看位置界面底部显示的超链接,可点击跳转
			});
		},
		getLocation: function(){//定位接口
			wx.getLocation({
			    type: 'wgs84', // 默认为wgs84的gps坐标，如果要返回直接给openLocation用的火星坐标，可传入'gcj02'
			    success: function (res) {
			        var latitude = res.latitude; // 纬度，浮点数，范围为90 ~ -90
			        var longitude = res.longitude; // 经度，浮点数，范围为180 ~ -180。
			        var speed = res.speed; // 速度，以米/每秒计
			        var accuracy = res.accuracy; // 位置精度
			    }
			});
		},
        startRecord:function(){//开始录音接口
            wx.startRecord({
                success: function(){
                    localStorage.rainAllowRecord = 'true';
                },
                cancel: function () {
                    alert('用户拒绝授权录音');
                }
            });
        },
        stopRecord:function(callback){//停止录音接口
            wx.stopRecord({
                success: function (res) {
                    var localId = res.localId;
                    callback(localId);
                }
            });
        },
        playVoice:function(localId){//播放录音接口
            wx.playVoice({
                localId: localId // 需要播放的音频的本地ID，由stopRecord口获得接
            });
        },
        pauseVoice:function(localId){
            wx.pauseVoice({
                localId: localId // 需要暂停的音频的本地ID，由stopRecord接口获得
            });
        },
        stopVoice:function(localId){
            wx.stopVoice({
                localId: localId // 需要停止的音频的本地ID，由stopRecord接口获得
            });
        },
        onVoiceRecordEnd:function(callback){
            wx.onVoiceRecordEnd({
                // 录音时间超过一分钟没有停止的时候会执行 complete 回调
                complete: function (res) {
                    var localId = res.localId;
                    callback(localId);
                }
            });
        },
        uploadVoice:function(localId,callback){//上传录音接口
            wx.uploadVoice({
                localId: localId, // 需要上传的音频的本地ID，由stopRecord接口获得
                isShowProgressTips: 1, // 默认为1，显示进度提示
                success: function (res) {
                    var serverId = res.serverId; // 返回音频的服务器端ID
                    callback(serverId)
                }
            });
        }
		
	};
	
	//定义命名空间
	window.WX_FUN = new _WXUtils();
})();
